package com.nameli.admin.service;

import com.github.pagehelper.PageInfo;
import com.nameli.SIM.bean.entity.MajorInfo;
import com.nameli.SIM.bean.query.MajorInfoQuery;
import com.nameli.SIM.bean.vo.MajorInfoVO;

import java.util.List;
import java.util.Map;

/**
 * @author NAME-L
 * @Description 专业信息 service接口
 * @className MajorService
 * @date 2021-10-31 17:40:59
 */
public interface MajorService {

    /**
     * 查询专业总数
     * @return count(总数)
     */
    int queryAllCount();

    /**
     * 分页查询专业信息
     * @param pageIndex 页码
     * @param pageSize  页面大小
     * @return pageInfo
     */
    PageInfo<MajorInfoVO> queryAllMajor(Integer pageIndex , Integer pageSize);

    /**
     * 根据条件分页查询专业信息
     * @param majorInfoQuery 查询条件
     * @param pageIndex 页码
     * @param pageSize  页面大小
     * @return pageInfo
     */
    PageInfo<MajorInfoVO> queryByCondition(MajorInfoQuery majorInfoQuery, Integer pageIndex , Integer pageSize);

    /**
     * 更新专业信息
     * @param majorInfo 更新后的专业实体类
     * @return boolean
     */
    Boolean updateMajorInfo(MajorInfo majorInfo);

    /**
     * 根据院系编号查找专业，用于级联选择器
     * @param facultyNo 院系编号
     * @return List<Map<String, Object>>
     */
    List<Map<String, Object>> queryByFacultyNo(String facultyNo);

    /**
     * 根据院系编号查找数量
     * @param facultyNo 院系编号
     * @return count
     */
    int queryCountByFacultyNo(String facultyNo);

    /**
     * 查找最大的id
     * @return int
     */
    int selectMaxId();

    /**
     * 添加专业信息
     * @return boolean
     */
    Boolean insertMajor(MajorInfo majorInfo);


    /**
     * 审核结束，确认消息
     * @param majorNo 专业id
     * @return boolean
     */
    Boolean updateConfirmCheck(String majorNo , String status);
}
